from appium import webdriver
import time
from selenium.webdriver.common.by import By


# 获取屏幕尺寸
def getSize(d):
    """获取屏幕尺寸"""
    x = d.get_window_size()["width"]
    y = d.get_window_size()["height"]
    return x,y

# 进行上划操作
def swipUp(d):
    """上划操作"""
    size = getSize(d)
    x1 = size[0]*0.5
    y1 = size[1]*0.75
    y2 = size[1]*0.25
    d.swipe(x1,y1,x1,y2,1000)
    print("完成上划")



# 定义一个启动函数
def startUp():
    print("启动中~~~")
    desire_caps = {
        # 通过adb devices获取,此处是模拟器所以填写的是ip和port
        "deviceName": "127.0.0.1:21503",
        # 被测系统决定是Android还是ios
        "platformName": "Android",
        # 系统版本:通过查看被测的系统的设置确定
        "platformVersion": "5.1.1",
        # 包名需进入APP安装包路径通过命令查看:aapt dump badging jinritoutiao.apk |findstr package
        "appPackage": "com.ss.android.article.news",
        # activity名:需进入app安装包路径通过命令查看:aapt dump badging jinritoutiao.apk |findstr activity
        "appActivity": "com.ss.android.article.news.activity.MainActivity",
        # 在此会话前不要重置应用程序
        "noReset": True,
        # 解决输入中文的问题,否则不能用sendkeys输入中文
        # "unicodeKeyboard": True,
        "automationName": "UIAutomator2"
    }
    print(desire_caps)
    # 启动app(参数一:appium服务器地址,参数二:启动参数字典)
    driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desire_caps)
    # 隐式等待
    driver.implicitly_wait(10)
    # 等待6秒
    time.sleep(6)
    # 执行相关操作==============================================================
    # # 找到搜索框,并点击
    # driver.find_element(By.ID, "com.ss.android.article.news:id/bpb").click()
    # # 找到新页面元素的输入框,获取其中文
    # print(driver.find_element(By.ID, "com.ss.android.article.news:id/w3").text)
    # # 找到页面元素输入框,输入关键词
    # driver.find_element(By.ID, "com.ss.android.article.news:id/w3").send_keys("叙利亚")
    # # 点击搜索按钮
    # driver.find_element(By.ID, "com.ss.android.article.news:id/w0").click()
    # time.sleep(3)
    # 断言
    # 1. 在页面源码内查找预期结果
    print(driver.page_source)
    # 2. 断言某个数据库里面是否落库正确
    # 3. 断言某个相关接口响应是否正确
    # 获取屏幕尺寸
    # print(driver.get_window_size())
    print(getSize(driver))
    # 上划操作
    swipUp(driver)
    time.sleep(5)



    # 关闭连接,退出
    driver.quit()
if __name__ == '__main__':
    startUp()
